#include <algorithm>
#include<iostream>
#include <iterator>
#include<vector>
using namespace std;
class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        reverse(digits.begin(),digits.end());
        int cnt=digits[0]+1;
        if(cnt/10)
        {
            digits[0]=cnt%10;
            cnt=1;
            
        }
        else{
            digits[0]=cnt;
            reverse(digits.begin(),digits.end());
            return digits;
        }
        int i=1;
        while(i<digits.size())
        {
            cnt=cnt+digits[i];
            if(cnt/10)
            {   
                digits[i]=cnt%10;
                cnt=1;
            }
            else {
            digits[i]=cnt;
            break;
            }
            i++;
        }
        if(cnt==1)digits.push_back(1);
        reverse(digits.begin(), digits.end());
        return digits;
    }
};